import { ApiProvider } from './../api/api';
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';

/*
  用户相关的接口在当前 provider 中添加
  如：登陆，注册，获取用户信息 ...
*/
@Injectable()
export class UserProvider {

  constructor(
    private api: ApiProvider,
    private storage: Storage
  ) {
  }


  /**
   * 用户登陆
   * @param params LoginOptions 登陆参数
   */
  login (params: LoginParams) {
    return new Promise ((resolve, reject) => {
      // 调用登陆接口，假设这个接口地址是 domain/api_path/user/login
      this.api.Post('user/login', params).then((rs: User) => {
        // 登陆成功，将用户信息缓存到本地便于其他页面使用
        // 写入缓存和获取缓存的操作都是异步的，并且已经封装成 Promise 对象
        this.storage.set('User', rs).then(() => {
          resolve(rs);
        }).catch(err => reject);
      }).catch(err => reject)
    });
  }

  /**
   * 用户注册
   */
  register (params: RegParams) {}

  
}

export interface LoginParams {
  username: string | number,
  password: string,
  code?: string
}

export interface RegParams {}

/**
 * 用户信息接口
 * 请根据数据表字段自行完善
 */
export interface User {}